import this

# 数据类型
# 整数
a = 10
print(type(a))
# <class 'int'>

# 浮点数
b = 10.0
print(type(b))
# <class 'float'>

# 字符串
c = "hello"
print(type(c))
# <class 'str'>

# 布尔值
d = True
print(type(d)) # <class 'bool'>

# 空值
e = None
print(type(e))
# <class 'NoneType'>

# 字符串常用方法
# 1. len() 获取字符串长度
print(len("hello")) # 5
print(len("你好")) # 2
# 字符串的字节数
# python3.0开始默认字符都是unicode码
# unicode码下gbk(中国国标)编码、utf-8国际通用支持大多数语言的编码、big5编码(中国国标)
# utf-8全角占3个字节
# gbk全角占2个字节
print(len("你好".encode("utf-8"))) # 6
print(len("你好".encode("gb2312")))  # 4

# 定义全角字符全角1
full_width_1 = '\uff11'
# 定义全角字符全角a
full_width_a = '\uff41'

print(full_width_1)  # 输出：全角1
print(full_width_a)  # 输出：全角a
print(len("１".encode("GBK"))) # 2

# 2. upper() 将字符串转换为大写
print("hello".upper()) # HELLO
# 3. lower() 将字符串转换为小写
print("HELLO".lower()) # hello
# 4. title() 将字符串每个单词的首字母大写
print("hello world".title()) # Hello World
# 5. replace() 替换字符串中的字符
print("hello world hello world".replace("world", "python")) # hello python hello python
# 6. split() 将字符串按照指定的分隔符进行分割，返回一个列表 split()默认按照空格进行分割
print("hello world".split())    # ['hello', 'world']        
print(",hello,world".split(",")) # ['hello', 'world']
# 7. join() 将列表中的元素连接成一个字符串
print(",".join(["hello", "world"]))  # hello,world
# 8. strip() 去除字符串两端的所有空格
print(" hello world    ".strip())
# 9. startswith() 判断字符串是否以指定的字符开头
print("hello world".startswith("hello"))
# 10. endswith() 判断字符串是否以指定的字符结尾
print("hello world".endswith("world"))
# 11. find() 查找字符串中指定字符的索引，如果找不到则返回-1
print("hello world world".find("world")) # 6
# 12. index() 查找字符串中指定字符的索引，如果找不到则抛出异常
print("hello world".index("world")) # 6
# 13. count() 统计字符串中指定字符出现的次数
print("hello world".count("l"))

